[C] Decompositor de números em fatores primos
Publicado por Enzo de Brito Ferber 27/06/2007
[ Hits: 10.192 ]
Homepage: http://www.maximasonorizacao.com.br
Como o nome já diz, um programa escrito em C, que decompõe um número qualquer em fatores primos e exibe estes números para o usuário.
/* * Programa: Decompositor de numeros * Arquivo : decom_primes.c * Autor : Enzo Ferber 'Slackware_10' */ #include <stdio.h> #include <stdlib.h> #define TRUE 1 #define FALSE 0 int *lista_primos(int size){ int prime, i=0, a, b; int *list = (int*)malloc(size*sizeof(int)); if(!list){ printf("[-] Erro ao alocar memoria.\n"); printf("[-] Abortando...\n"); exit(0); } for(a=2;a<size;a++){ prime = FALSE; for(b=1;b<=a;b++){ if(b == a) prime = TRUE; if(((a%b)==0) && (b != 1)) break; } if(prime) list[i] = a; if(prime) i += 1; } list[i] = 0x0; return list; } int *fatores_primos(int num){ int *lista = lista_primos(num+1); int *fatores = (int*)malloc(num*sizeof(int)); register int i; int div_atual, fat_atual, list_ref, ref; ref = num; fat_atual = 0; list_ref = 0; div_atual = lista[list_ref]; for(i=0; i<num; i++){ if(ref == 1){ fatores[fat_atual] = 1; break; } if((ref % div_atual) == 0){ ref = ref / div_atual; fatores[fat_atual] = div_atual; fat_atual++; } if((ref % div_atual) != 0) div_atual = lista[++list_ref]; } free(lista); fatores[fat_atual+1] = 0x0; return fatores; } int main(int argc, char *argv[]){ int *list; if(argc != 2){ printf("[-] Uso: %s <numero_a_fatorar>\n", argv[0]); printf("[-] Abortando...\n"); exit(0); } list = fatores_primos(atoi(argv[1])); while(*list) printf("%d\n", *list++); return 0; }
SIMULADOR DE DADOS DE RPG - Baseado em Vampiro A Máscara - Alea Jacta Est ver2.0.1
Nenhum comentário foi encontrado.
Crie alias para as tarefas que possuam longas linhas de comando - bash e zsh
Criando um gateway de internet com o Debian
Configuração básica do Conky para mostrar informações sobre a sua máquina no Desktop
Aprenda a criar músicas com Inteligência Artificial usando Suno AI
Entendendo o que é URI, URL, URN e conhecendo as diferenças entre POST e GET
Como instalar o XFCE4-terminal na sua distribuição Linux e integrá-lo ao sistema
Como instalar o Tilix Terminal no Gnome e usá-lo como menu drop-down ao estilo Quake
Instalando Grub Customizer no Ubuntu 24.04
COMANDO PVCREATE NÃO ENCONTRADO (3)
Aviso! Spin do Fedora (versão lxde) com problemas no programa de insta... (2)
Microfone não está conectado no Ubuntu 22.04 (1)
Como adicionar módulo de saúde da bateria dos notebooks Acer ao kernel... (43)